#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
    File Name:      renameClipedVideo
    Author:         'daze'
    date:           2018/11/7
    description:    用来重命名已经剪辑过的每小段视频，这里先判断数据库中的 video_cliped_name 文件是否存在，存在则重命名为 video_renamed_name，否则报错
"""
import AutoWool.main.utils.dj_single_use_utils
import os

from model.models.video_path import VideoPath
from AutoWool.main.config.config_utils import ConfigUtils
from AutoWool.main.utils.log_utils import Log

curClipedVideoPath = ConfigUtils.Dir.get_already_clip_dir_abs_path()


def rename_clip_video():
    Log.log('开始重命名，已经剪辑好的 video 存放路径为:' + curClipedVideoPath)
    clipped_files = os.listdir(curClipedVideoPath)
    if len(clipped_files) == 0:
        Log.debug('已经剪辑的目录中文件为空，无法重命名')
    else:
        query_path_result = VideoPath.objects.exclude(video_cliped_name__isnull=True).exclude(
            video_renamed_name__isnull=False).filter(
            video_renamed_name__exact='')

        query_len = len(query_path_result)
        Log.log('查询到 VideoPath 的数量为:' + str(query_len))

        if query_len != len(clipped_files):
            Log.debug(
                '数据库中 video_path_name 的记录数和本地目录不匹配，数据库中记录数为' + str(query_len) + ' 本地目录中记录数为:' + str(len(clipped_files)))
            return

        for clipped_sql_video in query_path_result:
            if clipped_sql_video not in clipped_files:
                Log.error(
                    '数据库中 video_path_name 中的 clipped_video_name:' + clipped_sql_video
                    + ' 和实际文件目录' + curClipedVideoPath + '不匹配')
            new_name = input('请重命名: ' + clipped_sql_video.video_cliped_name + '\n')
            clipped_sql_video.video_renamed_name = new_name
            clipped_sql_video.save()
            Log.log('成功将 ' + clipped_sql_video + ' 重命名为: ' + new_name)
        Log.log('重命名完毕')


if __name__ == "__main__":
    rename_clip_video()
